package com.jiuzhou.crawlers.taobao.processor.util;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.hadoop.fs.Path;

import com.jiuzhou.crawlers.taobao.processor.taobao.constant.CommonConstant;
import com.jiuzhou.crawlers.taobao.util.DataGetUtil;
import com.jiuzhou.crawlers.taobao.util.HdfsUtil;

import us.codecraft.webmagic.Page;
/**
	 * 项目名称：大数据爬虫
	 * @author yanganzhen
	 * version-code：1.0
     * 类说明：从持久化工具中取出待爬取的链接
     * 创建时间：2016年12月20日
	 */
public class RequstObtain {
	
	public static boolean isCurrentType = false;
	
     /**方法名称：getRequstById()
     * 方法说明：根据id拼接链接
     * @return List<String>
     */
    public List<String> getRequstById(String filePath, int startNum,int urlSum ){
		List<String[]> itemUrl = new ArrayList<String[]>(); //文件中所有的链接
		List<String> urlList=new ArrayList<String>();//每个id对应的链接
		int endNum = 0 ;
		int index = 0 ;
		 List<List<Path>> allPaths= HdfsUtil.getAllFileByRootPath(filePath);//获取所有文件的文件名
		//遍历所有文件
		for(List<Path> ps : allPaths){

			 for(Path p : ps ){
					if(endNum<=urlSum){	
				 //判断是否从当前关键词开始爬取
				 if(CommonConstant.CURRENTTYPE.equals("")){
					 isCurrentType=true;
				 }else{
				   if(p.getName().contains(CommonConstant.CURRENTTYPE)){
					   isCurrentType=true;
				   }else{
					   if(!isCurrentType)
					   break;
				   }
				 }
				 //获取所有爬取路径
				 try {
					itemUrl = DataGetUtil.getDataByParam(p,"itemId");// List<文件每行的链接>
				} catch (IOException e) {
					e.printStackTrace();
				}
				 List<Integer> lineCount=new ArrayList<Integer>();//List<每行商品数目>
				 for(String[] itU : itemUrl){
						index = index + itU.length;
					    //判断开始爬取的链接
				     	if(index >= startNum){   //乘以10是currentPage的个数
							 int lineLength = itU.length;
							 lineCount.add(lineLength);//添加当前行的商品个数
							 for(String u : itU){
								if(isCurrentType){
									//for(int pageNum = 1 ; pageNum <= 10 ; pageNum ++){
										urlList.add("https://rate.taobao.com/feedRateList.htm?auctionNumId="+u.trim()+"&orderType=feedbackdate&currentPageNum=1&pageSize=20");
									    endNum++;	
								   //}

								}
							 }
				      	}
					 
				 }
				 System.out.println("完成url提取 文件的路径为："+p.toString() +"    文件名为："+p.getName()+"读取个数："+endNum);
			 }
		  }
		}
		return urlList;
      }
}
